//
//  JHFHttp.h
//  jhf
//
//  Created by 计海峰 on 2017/11/23 14:05:37.
//  Copyright © 2017年 计海峰. All rights reserved.
//

 
#import <AFNetworking/AFNetworking.h>
#import "JDefine.h" 
#define JNETWORKSUCCESS @"JNETWORKSUCCESS"   //网络从无连接到有连接
#define JNETWORKEVERYCHANGE @"JNETWORKEVERYCHANGE" //网络发生变化

typedef void (^Success)(id responseObject);
typedef void (^Fail)(NSError * error);
//未知  已获取数据 总共数据  进度为 (float)totalBytesWritten/totalBytesExpectedToWrite
typedef void (^Progress)(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite);

@interface JBaseHttp : NSObject

#pragma mark  基本请求
/**
 *  post网络请求
 *
 *  @param urlStr  地址
 *  @param param   参数
 *  @param success 成功返回信息
 *  @param fail    失败返回信息
 */
void jPost(NSString *urlStr, id param,Success success , Fail fail);


/**
 *  post网络请求
 *
 *  @param urlStr  地址
 *  @param param   参数
 *  @param success 成功返回信息
 *  @param fail    失败返回信息
 */
void jGet(NSString *urlStr, id param,Success success , Fail fail);

#pragma mark  HF监听网络变化
/**
 *  实时监测网络
 */
void jNetMonit();

/**
 *  根据状态栏  变化 获取网络状态
 *  @return 0：无网络  1：流量  2：wifi
 */
NSString *jGetNetWorkStates();

#pragma mark 上传下载
/**
 文件下载
 
 @param urlStr 下载的路径
 @param param 是否加密
 @param success 成功返回信息
 @param localPath 本地存储路径 全路径
 @param fail 失败返回信息
 @param jProgress 下载进程
 */
void jDown(NSString *urlStr, BOOL needSign, NSString *localPath, id param,Success success , Fail fail , Progress jProgress);

/**
 *  表单提交
 *
 *  @param urlStr     提交路径
 *  @param param      参数
 *  @param success    成功返回信息
 *  @param fail       失败返回信息
 *  @param jProgress  进度
 *  @param nameArray  图片名或者视频名 .mp4
 */
void jFormatPost(NSString *urlStr, id param,Success success , Fail fail ,Progress jProgress, NSMutableArray *dataArray ,NSMutableArray <NSString *>*nameArray);


/**
 *  表单提交 上传文件
 *
 *  @param urlStr     提交路径
 *  @param param      参数
 *  @param success    成功返回信息
 *  @param fail       失败返回信息
 *  @param jProgress  进度
 *  @param dataArray  文件数组
 *  @param nameArray  文件名称
 */
void jFormatPostFile(NSString *urlStr, id param,Success success , Fail fail ,Progress jProgress, NSMutableArray *dataArray ,NSMutableArray <NSString *>*nameArray);

@end




